#include <iostream>
using namespace std;

struct test {};

void test(test x) {}

int main() {
	const int i = 10;
	int *ptr1 = const_cast<int*>(&i);

	cout << "&i = " << (long)&i << endl;
	cout << "ptr1 = " << reinterpret_cast<long>(ptr1) << endl;

	cout << "const *ptr1 = " << *ptr1 << endl;
	*ptr1 = 11;//undeifined behavior!!!

	cout << "const i = " << i << endl;
	cout << "const *ptr1 = " << *ptr1 << endl;
	cout << "&i = " << (long)&i << endl;
	cout << "ptr1 = " << reinterpret_cast<long>(ptr1) << endl;

	if(0 not_eq 1) ;

}
